package cn.t.dto.user;


import cn.t.core.mode.BaseDTO;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

/** 参与者和角色关联表
 * @author l*/
@EqualsAndHashCode(callSuper = true)
@Data
@JsonIgnoreProperties(value = {"gmtModifiedStart", "gmtModifiedEnd", "gmtCreatedStart", "gmtCreatedEnd"}, allowSetters = true)
public class ParticipantRoleDTO extends BaseDTO implements Serializable {


    /**
     * 参与者ID
     */
    private Long participantId;

    private Long userId;

    /**
     * 角色ID
     */
    private Long roleId;

    /**
     * 角色 Code
     */
    private String roleCode;

    /**
     * 角色 名称
     */
    private String roleName;

    /**
     * 角色类型
     */
    private String roleType;

    /**
     * 资源 ID
     */
    private Set<Long> resourceIdSet;

    /**
     * 场景 ID
     */
    private Long scenarioId;

    /**
     * 场景 代码
     */
    private String scenarioCode;

    /**
     * 状态 0-失效 1-有效
     */
    private String status;


    /**
     * 变更时间起(查询用)
     */
    private Date gmtModifiedStart;
    /**
     * 变更时间止(查询用)
     */
    private Date gmtModifiedEnd;
    /**
     * 创建时间起(查询用)
     */
    private Date gmtCreatedStart;
    /**
     * 创建时间止(查询用)
     */
    private Date gmtCreatedEnd;

    public boolean hasRole(Long resourceId) {
        if (resourceIdSet == null || resourceIdSet.isEmpty()) {
            return false;
        }

        return resourceIdSet.contains(resourceId);
    }
}

